Computer programmers must typically reprogram a programmable device (i.e., a smart device) each time the device needs to perform a new behavior. Programmable devices typically require programmers (or users) to use a specialized programmer interface that interfaces with the device to configure it for a new task. However, even with the programmer interface, the reconfiguring and reprogramming of programmable devices may require expertise in writing arduous computer code associated with the programmer interface to program the device new behaviors. Scheduling an expert to write code means reprogramming is rarely accomplished immediately, and may be costly because it may require keeping such an expert on staff or hiring a consultant to make the appropriate changes. Thus, programming a new behavior on a programmable device is not a simple and efficient endeavor. A simple and quick mechanism is needed to teach learning devices new behaviors without the need of an expert.